package com.turnengine.client.local.unit.list;

import java.util.Collection;

import com.turnengine.client.local.unit.enums.UnitType;

/**
 * The I Unit List.
 */
public interface IUnitList {

	UnitType getUnitType();

	boolean isEmpty();

	void clear();

	int parents();

	int parents(int unitId);

	void addParent(IParentUnit parent);

	IParentUnit getParent(int unitId, int offset);

	IParentUnit getParentAtIndex(int index);

	boolean containsParent(int unitId);

	boolean containsChild(int unitId);

	void addParentAmount(int unitId, int amount);

	void removeParentAmount(int unitId, int amount);

	int getParentAmount(int unitId);

	long getChildAmount(int unitId);

	Collection<IParentUnit> getParents();

	long count(int unitId, long amount);

	boolean contains(int unitId, long amount);
}
